package com.wolfking.aggregate;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

@Documented
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AggregateThreadPool {

    /**
     * 为空就不创建，使用默认的
     * 名字相同使用最早创建的
     * 类上的优先级大于方法上的优先级
     *
     * @return
     */
    String name() default "";

    int coreSize() default 10;

    int maxSize() default 100;

    int queueSize() default 1000;

    int keepAlive() default 10;

    TimeUnit keepAliveUnit() default TimeUnit.MINUTES;

    String rejectedHandler() default "CallerRunsPolicy";
}
